'''
Created on Apr 5, 2016

@author: JimmyMo
'''
import inspect

class Boot(object):
    def __init__(self, raw_options, start_method):
        self._parse_options(raw_options)
        self.start_method = start_method
    def _parse_options(self, raw_options):
#         '''abstract method'''
#         class_name = self.__class__.__name__
#         method_name = inspect.stack()[0][3]
#         raise Exception("%s method in class %s is abstract method which is not implemented..." % (method_name, class_name))
        pass
    def set_parameters(self, *args, **kwargs):
        self.args = args
        self.kwargs = kwargs
    def boot(self):
        '''abstract method'''
        class_name = self.__class__.__name__
        method_name = inspect.stack()[0][3]
        raise Exception("%s method in class %s is abstract method which is not implemented..." % (method_name, class_name))